package org.gameg.model.biz;

import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.annotations.TableName;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import org.gameg.bean.Player;
import org.gameg.bean.Power;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.PropertySource;
import org.springframework.stereotype.Component;
import org.springframework.stereotype.Controller;
import top.ibase4j.core.base.BaseModel;

import java.util.ArrayList;
import java.util.List;

/**
 * <p>
 * 游戏
 * </p>
 *
 * @author ShenHuaJie
 * @since 2018-04-21
 */
@ApiModel("游戏")
@TableName("t_game")
@Component
@PropertySource("classpath:property.properties")
@SuppressWarnings("serial")
public class TGame extends BaseModel {
    @Value("${1}")
    @TableField("game_type")
    @ApiModelProperty(value = "牌型（牛牛牌型，百家乐牌型，大小单双合牌型，特码牌型）")
    private String gameType;
    @Value("${2}")
    @TableField("game_rule")
    @ApiModelProperty("规则<1有庄2无庄3比门>")
    private String gameRule;
    @Value("${3}")
    @TableField("game_mode")
    @ApiModelProperty("模式<1喝水模式2纯算账3积分模式>")
    private String gameMode;
    @Value("${4}")
    @ApiModelProperty(value = "玩法格式：三位/两位/一位")
    private String dt;
    @Value("${5}")
    @ApiModelProperty(value = "金牛种类")
    private String jnt;
    @Value("${6}")
    @ApiModelProperty(value = "对子种类")
    private String dzt;
    @Value("${7}")
    @ApiModelProperty(value = "顺子种类")
    private String szt;
    @Value("${8}")
    @TableField("rs_max")
    @ApiModelProperty("几点以下认输")
    private Integer rsMax;
    @Value("${9}")
    @TableField("dp_max")
    @ApiModelProperty("几点以下同点打平")
    private Integer dpMax;
    @Value("${10}")
    @TableField("dp_min_point")
    @ApiModelProperty("几点以上同点打平(至牛牛)")
    private Integer dpMinPoint;
    @Value("${11}")
    @TableField("dp_min_amount")
    @ApiModelProperty("几点以上同金额打平(至豹子)")
    private Integer dpMinAmount;
    @Value("${12}")
    @TableField("same_point")
    @ApiModelProperty("同点比较规则(1比金额2比角分3比分4庄赢5打平)")
    private String samePoint;
    @Value("${13}")
    @TableField("same_pat")
    @ApiModelProperty("庄家与闲家同点同金额(1打平2庄赢)")
    private String samePat;
    @Value("${14}")
    @TableField("cmp_front_one")
    @ApiModelProperty("分相同比角")
    private String cmpFrontOne;
    @Value("${15}")
    @TableField("cmp_amount")
    @ApiModelProperty("角分相同比金额")
    private String cmpAmount;
    @Value("${16}")
    @TableField("main_time")
    @ApiModelProperty("庄家超时时间")
    private Integer mainTime;
    @Value("${17}")
    @TableField("main_timeout")
    @ApiModelProperty("庄家超时(1全赔/2平赔/3打平/4允许/5大平小赔)")
    private String mainTimeout;
    @Value("${18}")
    @TableField("player_time")
    @ApiModelProperty("闲家超时时间")
    private Integer playerTime;
    @Value("${19}")
    @TableField("player_timeout")
    @ApiModelProperty("闲家超时(1全赔/2平赔/3打平/4允许/5大平小赔)")
    private String playerTimeout;
    @Value("${20}")
    @TableField("double_timeout")
    @ApiModelProperty("庄闲都超时(1打平/2庄赢)")
    private String doubleTimeout;
    @Value("${21}")
    @TableField("main_first")
    @ApiModelProperty("庄家头包(1全陪/2平陪3/允许)")
    private String mainFirst;
    @Value("${22}")
    @TableField("main_none")
    @ApiModelProperty("庄家无包(1算最后一个包/2倒数第二包/3被抢包)")
    private String mainNone;
    @Value("${23}")
    @TableField("player_none")
    @ApiModelProperty("闲家无包(1算最后一个包/2倒数第二包/3全赔/4平陪)")
    private String playerNone;
    @Value("${24}")
    @TableField("punish_score")
    @ApiModelProperty("抢错包扣积分")
    private Integer punishScore;
    @Value("${25}")
    @TableField("one_fen")
    @ApiModelProperty("0.01算什么")
    private String oneFen;
    @TableField(exist = false)
    //@Value("2")
    @ApiModelProperty("倍率配置")
    private List<TGamePower> powers = new ArrayList<>();
    @ApiModelProperty("玩家")
    @TableField(exist = false)
    private List<TGamePlayer> players;
    @Value("${26}")
    @TableField("drink_setting")
    @ApiModelProperty("喝水设置<1倍率，金额，牛数，抢包时间2倍率，牛数，金额，抢包时间3抢包时间>")
    private String drinkSetting;
    @Value("${27}")
    @ApiModelProperty("同对子比较<1代表：比金额;2代表：比尾数;3代表：先尾后金额>")
    private String tdzb = "1";
    @Value("${28}")
    @TableField("poker")
    @ApiModelProperty("梭哈百分比")
    private String poker;
    @Value("${29}")
    @TableField("catch_us")
    @ApiModelProperty("大小抓合选项：1.抓合不赔；2.抓合赔一半；3.抓合全赔")
    private String catchUs = "1";
    @Value("${30}")
    @TableField("tm_catch_us")
    @ApiModelProperty("特码抓合选项：1.抓合不赔；2.抓合赔一半；3.抓合全赔")
    private String tmCatchUs = "1";
    @Value("${31}")
    @TableField("zfree_buy")
    @ApiModelProperty("庄家自买：true.开启自买超时认证；false.关闭自买超时认证")
    private boolean zfreeBuy;
    @Value("${32}")
    @TableField("xfree_buy")
    @ApiModelProperty("闲家自买：true.开启自买超时认证；false.关闭自买超时认证")
    private boolean xfreeBuy;
    @Value("${33}")
    @TableField("t_up_zcredit_score")
    @ApiModelProperty("上庄金额")
    private Integer tUpZCreditScore;
    @Value("${34}")
    @TableField("tdraw")
    @ApiModelProperty("是否开启抽水模式：true:抽水，false:不抽水")
    private boolean TDraw = false;
    @Value("${35}")
    @TableField("t_up_zdraw")
    @ApiModelProperty("上庄抽水：%")
    private double tUpZDraw=0;
    @Value("${36}")
    @TableField("t_kepp_zdraw")
    @ApiModelProperty("续庄抽水：%")
    private double tKeppZDraw = 0;
    @Value("${37}")
    @TableField("t_zwin_draw")
    @ApiModelProperty("庄赢抽水")
    private double tZWinDraw;
    @Value("${38}")
    @TableField("t_bet_player_sum")
    @ApiModelProperty("按下注人数抽水：下注人数*设置金额")
    private double tBetPlayerSum;
    @Value("${39}")
    @ApiModelProperty("附加抽水·庄：设置10，抽水10")
    private double tfjcs;
    @Value("${40}")
    @TableField("t_bet_sum")
    @ApiModelProperty("按下注注数抽水：值/闲家总下注金额*庄家抽到的point对应的注数")
    private double tBetSum;
    @Value("${41}")
    @TableField("t_zwin_gd_draw")
    @ApiModelProperty("庄家盈利固定抽水费用：true:开启；false：不开启")
    private boolean tZWinGdDraw;
    @Value("${42}")
    @TableField("t_zgd_draw")
    @ApiModelProperty("庄固定扣费（人数*扣费值）")
    private double tZGdDraw;
    @Value("${43}")
    @TableField("t_pt_draw")
    @ApiModelProperty("普通抽水")
    private double tPtDraw;
    @Value("${44}")
    @TableField("t_poker_draw")
    @ApiModelProperty("梭哈抽水：当局梭哈总下注*抽水值")
    private double tPokerDraw;
    @Value("${45}")
    @TableField("t_xian_gd_draw")
    @ApiModelProperty("闲家固定抽水")
    private double tXianGdDraw;
    @Value("${46}")
    @TableField("txian_win_draw")
    @ApiModelProperty("是否开启闲赢抽水，百分比")
    private boolean TXianWinDraw;
    @Value("${47}")
    @TableField("player_token")
    @ApiModelProperty("玩家唯一授权码")
    private String player_token;
    @Value("${48}")
    @TableField("token")
    @ApiModelProperty("玩家唯一token")
    private String token;

    public String getToken() {
        return token;
    }

    public void setToken(String token) {
        this.token = token;
    }

    public String getPlayer_token() {
        return player_token;
    }

    public void setPlayer_token(String player_token) {
        this.player_token = player_token;
    }

    public String getDrinkSetting() {
        return drinkSetting;
    }

    public void setDrinkSetting(String drinkSetting) {
        this.drinkSetting = drinkSetting;
    }

    public String getTdzb() {
        return tdzb;
    }

    public void setTdzb(String tdzb) {
        this.tdzb = tdzb;
    }

    public List<TGamePower> getPowers() {
        return powers;
    }

    public void setPowers(List<TGamePower> powers) {
        this.powers = powers;
    }

    public List<TGamePlayer> getPlayers() {
        return players;
    }

    public void setPlayers(List<TGamePlayer> players) {
        this.players = players;
    }

    public String getPoker() {
        return poker;
    }

    public void setPoker(String poker) {
        this.poker = poker;
    }

    public String getCatchUs() {
        return catchUs;
    }

    public void setCatchUs(String catchUs) {
        this.catchUs = catchUs;
    }

    public String getTmCatchUs() {
        return tmCatchUs;
    }

    public void setTmCatchUs(String tmCatchUs) {
        this.tmCatchUs = tmCatchUs;
    }

    public boolean isZfreeBuy() {
        return zfreeBuy;
    }

    public void setZfreeBuy(boolean zfreeBuy) {
        this.zfreeBuy = zfreeBuy;
    }

    public boolean isXfreeBuy() {
        return xfreeBuy;
    }

    public void setXfreeBuy(boolean xfreeBuy) {
        this.xfreeBuy = xfreeBuy;
    }

    public Integer gettUpZCreditScore() {
        return tUpZCreditScore;
    }

    public void settUpZCreditScore(Integer tUpZCreditScore) {
        this.tUpZCreditScore = tUpZCreditScore;
    }

    public boolean isTDraw() {
        return TDraw;
    }

    public void setTDraw(boolean TDraw) {
        this.TDraw = TDraw;
    }

    public double gettUpZDraw() {
        return tUpZDraw;
    }

    public void settUpZDraw(double tUpZDraw) {
        this.tUpZDraw = tUpZDraw;
    }

    public double gettKeppZDraw() {
        return tKeppZDraw;
    }

    public void settKeppZDraw(double tKeppZDraw) {
        this.tKeppZDraw = tKeppZDraw;
    }

    public double gettZWinDraw() {
        return tZWinDraw;
    }

    public void settZWinDraw(double tZWinDraw) {
        this.tZWinDraw = tZWinDraw;
    }

    public double gettBetPlayerSum() {
        return tBetPlayerSum;
    }

    public void settBetPlayerSum(double tBetPlayerSum) {
        this.tBetPlayerSum = tBetPlayerSum;
    }

    public double getTfjcs() {
        return tfjcs;
    }

    public void setTfjcs(double tfjcs) {
        this.tfjcs = tfjcs;
    }

    public double gettBetSum() {
        return tBetSum;
    }

    public void settBetSum(double tBetSum) {
        this.tBetSum = tBetSum;
    }

    public boolean istZWinGdDraw() {
        return tZWinGdDraw;
    }

    public void settZWinGdDraw(boolean tZWinGdDraw) {
        this.tZWinGdDraw = tZWinGdDraw;
    }

    public double gettZGdDraw() {
        return tZGdDraw;
    }

    public void settZGdDraw(double tZGdDraw) {
        this.tZGdDraw = tZGdDraw;
    }

    public double gettPtDraw() {
        return tPtDraw;
    }

    public void settPtDraw(double tPtDraw) {
        this.tPtDraw = tPtDraw;
    }

    public double gettPokerDraw() {
        return tPokerDraw;
    }

    public void settPokerDraw(double tPokerDraw) {
        this.tPokerDraw = tPokerDraw;
    }

    public double gettXianGdDraw() {
        return tXianGdDraw;
    }

    public void settXianGdDraw(double tXianGdDraw) {
        this.tXianGdDraw = tXianGdDraw;
    }


    public boolean isTXianWinDraw() {
        return TXianWinDraw;
    }

    public void setTXianWinDraw(boolean TXianWinDraw) {
        this.TXianWinDraw = TXianWinDraw;
    }

    public String getGameType() {
        return gameType;
    }

    public void setGameType(String gameType) {
        this.gameType = gameType;
    }

    public String getGameRule() {
        return gameRule;
    }

    public void setGameRule(String gameRule) {
        this.gameRule = gameRule;
    }

    public String getGameMode() {
        return gameMode;
    }

    public void setGameMode(String gameMode) {
        this.gameMode = gameMode;
    }

    public String getDt() {
        return dt;
    }

    public void setDt(String dt) {
        this.dt = dt;
    }

    public String getJnt() {
        return jnt;
    }

    public void setJnt(String jnt) {
        this.jnt = jnt;
    }

    public String getDzt() {
        return dzt;
    }

    public void setDzt(String dzt) {
        this.dzt = dzt;
    }

    public String getSzt() {
        return szt;
    }

    public void setSzt(String szt) {
        this.szt = szt;
    }

    public Integer getRsMax() {
        return rsMax;
    }

    public void setRsMax(Integer rsMax) {
        this.rsMax = rsMax;
    }

    public Integer getDpMax() {
        return dpMax;
    }

    public void setDpMax(Integer dpMax) {
        this.dpMax = dpMax;
    }

    public Integer getDpMinPoint() {
        return dpMinPoint;
    }

    public void setDpMinPoint(Integer dpMinPoint) {
        this.dpMinPoint = dpMinPoint;
    }

    public Integer getDpMinAmount() {
        return dpMinAmount;
    }

    public void setDpMinAmount(Integer dpMinAmount) {
        this.dpMinAmount = dpMinAmount;
    }

    public String getSamePoint() {
        return samePoint;
    }

    public void setSamePoint(String samePoint) {
        this.samePoint = samePoint;
    }

    public String getSamePat() {
        return samePat;
    }

    public void setSamePat(String samePat) {
        this.samePat = samePat;
    }

    public String getCmpFrontOne() {
        return cmpFrontOne;
    }

    public void setCmpFrontOne(String cmpFrontOne) {
        this.cmpFrontOne = cmpFrontOne;
    }

    public String getCmpAmount() {
        return cmpAmount;
    }

    public void setCmpAmount(String cmpAmount) {
        this.cmpAmount = cmpAmount;
    }

    public String getMainTimeout() {
        return mainTimeout;
    }

    public void setMainTimeout(String mainTimeout) {
        this.mainTimeout = mainTimeout;
    }

    public String getPlayerTimeout() {
        return playerTimeout;
    }

    public void setPlayerTimeout(String playerTimeout) {
        this.playerTimeout = playerTimeout;
    }

    public String getDoubleTimeout() {
        return doubleTimeout;
    }

    public void setDoubleTimeout(String doubleTimeout) {
        this.doubleTimeout = doubleTimeout;
    }

    public String getMainFirst() {
        return mainFirst;
    }

    public void setMainFirst(String mainFirst) {
        this.mainFirst = mainFirst;
    }

    public String getMainNone() {
        return mainNone;
    }

    public void setMainNone(String mainNone) {
        this.mainNone = mainNone;
    }

    public String getPlayerNone() {
        return playerNone;
    }

    public void setPlayerNone(String playerNone) {
        this.playerNone = playerNone;
    }

    public Integer getMainTime() {
        return mainTime;
    }

    public void setMainTime(Integer mainTime) {
        this.mainTime = mainTime;
    }

    public Integer getPlayerTime() {
        return playerTime;
    }

    public void setPlayerTime(Integer playerTime) {
        this.playerTime = playerTime;
    }

    public Integer getPunishScore() {
        return punishScore;
    }

    public void setPunishScore(Integer punishScore) {
        this.punishScore = punishScore;
    }

    public String getOneFen() {
        return oneFen;
    }

    public void setOneFen(String oneFen) {
        this.oneFen = oneFen;
    }
}
